﻿using ExcellentProjectPlus.Dominio.Seguridades.Entidades;
using ExcellentProjectPlus.Dominio.Seguridades.Repositorios;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ExcellentProjectPlus.Seguridades.Servicios.Docentes
{
    public class ServicioDeAdministracionDeDocentes:IServicioDeAdministracionDeDocentes
    {
         #region Atributos
        IUnidadDeTrabajoSeguridades _unidadDeTrabajo;
        #endregion

        #region Constructores
        public ServicioDeAdministracionDeDocentes(IUnidadDeTrabajoSeguridades unidadDeTrabajo)
        {
            _unidadDeTrabajo = unidadDeTrabajo;
        }
        #endregion

        public IEnumerable<Docente> ObtenerDocentes()
        {
            return _unidadDeTrabajo.RepositorioDocentes.Obtener();
        }
        public Docente ObtenerDocentePorId(int id)
        {
            return _unidadDeTrabajo.RepositorioDocentes.ObtenerPorId(id);
        }
        public void AgregarDocente(Docente docente)
        {
            _unidadDeTrabajo.RepositorioDocentes.Agregar(docente);
            _unidadDeTrabajo.Confirmar();
        }
        public void ModificarDocente(Docente docente)
        {
            _unidadDeTrabajo.RepositorioDocentes.Modificar(docente);
            _unidadDeTrabajo.Confirmar();
        }
        public void EliminarDocente(Docente docente)
        {
            _unidadDeTrabajo.RepositorioDocentes.Eliminar(docente);
            _unidadDeTrabajo.Confirmar();
        }

        public Docente ObtenerDocentePorNombreUsuario(string usuario)
        {
            return _unidadDeTrabajo.RepositorioDocentes.Obtener(e => e.Usuario.Equals(usuario, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
        }
    }
}
